The present invention relates generally to network load balancing systems and methods, and in particular to methods and systems for selecting one server among many servers in a network by using network measurements and a request by a client system.
A conventional network is made up of a plurality of network components or nodes, such as computing devices, e.g., personal computers, workstations and other similar devices. A limited number of network components and devices on a network spanning a relatively small area is called a local area network (LAN) In a LAN, most computing devices operate independently of each other, and most computing devices are able to access data or other network components anywhere on the LAN. A client system represents one such computing device.
The LAN allows for many client systems to share resources, such as printers or data storage equipment. A server is a managerial computing device that manages these shared network resources. Examples of servers include file servers that are dedicated to storing and retrieving files from a storage device, print servers that manage several printers, and application servers that are dedicated to execute only specific types of applications, such as hardware or software development tools.
Interconnecting the client systems and the servers are a series of cables, such as twisted-pair wire, coaxial cables, or fiber optic cables, and network devices, such as routers, switches, and repeaters. Conventionally, when a client system wants a task to be performed, it seeks a server to perform the task. Through the cables and network devices, the client system conveys its request to a server. If the server accepts the task, the server performs the task, and thereby transfers information to and from the client system. A server, however, does not have to be located in the same LAN as the client system.
One LAN can be connected to other LANs over any distance via telephone lines and radio waves. A collection of LANs connected in this manner is referred to as a wide-area network (WAN). A collection of WANs connected to other LANs and WANs is also referred to as a WAN. The largest WAN is the Internet which is a global network connecting millions of computing devices. Therefore, client systems are capable of accessing servers and client systems anywhere on WAN.
However, in a WAN, the total number of client systems easily outnumbers the total number of servers. Therefore, a server can easily get bombarded by a tremendous number of client requests and can thus get overwhelmed. Thus, many times numerous distinct servers are utilized in a manner such that any one of the distinct servers may respond to any specific request. Thus, many parallel servers may be available to respond to client requests, and these servers are sometimes allocated in a round robin fashion to process client requests. However, requests may be of varying nature, both in terms of required communication bandwidth and required extent of processing. Accordingly, specific servers may become overwhelmed.
In order to reduce or regulate this server congestion, the present invention provides a load balancing system and method which distributes the client request to different servers on the WAN by selecting the most optimal server for a specific client request. The load balancing system causes no or minimal disruption to the client systems, servers and network devices. Since in a WAN the client systems, servers and network devices can number in the thousands or millions, minimal or no effect on the client systems, servers and network devices is preferred.
Also, the load balancing system and method is not limited to a specific location on the network, and thus, allows the flexibility of allowing installation or utilization of the load balancing system and method anywhere on the network. Furthermore, the load balancing system is not limited to any particular size of the network, i.e, a LAN, a WAN or even the Internet.
According to the present invention, load balancing for a network is provided. The network has a plurality of client systems and servers. A client request for a server from a client system is received. A destination point of the client request is resolved and the client request is sent to a load balancing server based on the resolved destination point. One server out of a subset of the plurality of servers is selected based on a predetermined criteria. A conduit to the client system and the selected server for transmission of the client request is provided.
In one embodiment, load balancing system for a network is provided. The network has a plurality of client systems and a plurality of servers. At least one load balancing server adapted to be coupled with the network and at least one load balancing server selector coupled with the at least one load balancing server is also provided. The load balancing server selector is adapted to receive requests from the client systems and to forward the requests to the at least one load balancing server. The at least one load balancing server selects one server out of a subset of the plurality of servers based on a predetermined criteria and the requests from the client systems.